﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

/// <summary>
/// Summary description for IAlbums
/// </summary>
public interface IAlbums
{
    /// <summary>
    /// Get all albums by user
    /// </summary>
    /// <param name="user">Object user</param>
    /// <returns>List albums of user</returns>
    List<Albums> GetListAlbumsOfUser(Users user);

    /// <summary>
    /// Get album by id
    /// </summary>
    /// <param name="idAlbum">id of album</param>
    /// <returns>Album</returns>
    Albums GetAlbumById(int idAlbum);

    /// <summary>
    /// Get album by name 
    /// </summary>
    /// <param name="name">Name of album</param>
    /// <returns>Album</returns>
    Albums GetAlbumByName(string name);

    /// <summary>
    /// Create album
    /// </summary>
    /// <param name="name">Name of album</param>
    /// <param name="description">Description of album</param>
    /// <param name="user">Users want to create</param>
    /// <returns>Result result was created</returns>
    bool CreateAlbum(string name, string description, Users user);

    /// <summary>
    /// Delete album
    /// </summary>
    /// <param name="album">Album want to delete</param>
    /// <returns>Return result was deleted</returns>
    bool DeleteAlbum(Albums album);

    /// <summary>
    /// Update album
    /// </summary>
    /// <param name="album">Album want to update</param>
    /// <returns>Return result was updated</returns>
    bool UpdateAlbum(Albums album);

    /// <summary>
    /// Convert DataRow to Album
    /// </summary>
    /// <param name="dr">DataRow</param>
    /// <returns>Return objec Albums was converted</returns>
    Albums ConvertObjectDataRowToAlbum(DataRow dr);
}